註冊的方式我想使用laravel的command來實作,原本想用form表單來實現,不過這樣感覺主題就重複了,剛好用command也可以多學習一個技能,那今天的目標是利用指令輸入註冊的資料,然後讓程式處理後回傳一些輸入後的資訊給使用者看
首先使用指令來生成一個Command吧
php artisan make:command SignUp
生成了一個檔案app/Console/Commands/SignUp.php
<?php
namespace App\Console\Commands;
use Illuminate\Console\Command;
class SignUp extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'command:name';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command description';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return int
*/
public function handle()
{
return 0;
}
}
這個檔案中有幾項設定
來開始設定囉
# 註冊需要輸入帳號跟密碼還有名稱
protected $signature = 'sign-up {account} {password} {name}';
protected $description = '註冊用的指令';
接著我們設定handle(),利用$this->argument('account')來接傳入的值
public function handle()
{
$account = $this->argument('account');
$password = $this->argument('password');
$username = $this->argument('username');
return 0;
}
接著我們來加入一些判斷,例如密碼需要6位數以上英數字。
利用Validator::make 來達成
public function handle()
{
$account = $this->argument('account');
$password = $this->argument('password');
$username = $this->argument('username');
$validator = Validator::make(['password' => $password], [
'password' => 'regex:' . SignUp::PASSWORD_REGEX
]);
if ($validator->fails()) {
$this->error("密碼需要6位數以上,並且至少包含大寫字母、小寫字母、數字、符號各一");
return 1;
}
return 0;
}
而輸出文字可以用$this->error, $this->line來使用
public function handle()
{
$account = $this->argument('account');
$password = $this->argument('password');
$username = $this->argument('username');
$validator = Validator::make(['password' => $password], [
'password' => 'regex:' . SignUp::PASSWORD_REGEX
]);
if ($validator->fails()) {
$this->error("密碼需要6位數以上,並且至少包含大寫字母、小寫字母、數字、符號各一");
return 1;
}
$this->line("您輸入的帳號:$account");
$this->line("您輸入的密碼:$password");
$this->line("您輸入的姓名:$username");
return 0;
}
搞定啦,我們利用指令輸入註冊的資料,然後讓程式處理後回傳一些輸入後的資訊給使用者看,明天我們試著把輸入的資料存進資料庫,完成註冊吧!
不好意思我想請問一下
我的SignUp::PASSWORD_REGEX PASSWORD_REGEX底下紅色線